This application is a continuation-in-part of U.S. patent application Ser. No. 08/294,438 (abandoned), filed Aug. 23, 1994. This application is also related to U.S. patent application Ser. No. 818,731, filed Jan. 6, 1992, now U.S. Pat. No. 5,229,591, which was a continuation of Ser. No. 07/506,674 (abandoned). This application is further related to U.S. patent application Ser. No. 07/317,433, filed Mar. 1, 1989 (abandoned); to U.S. patent application Ser. No. 07/520,464, filed May 8, 1990, which issued as U.S. Pat. No. 5,168,149; and U.S. patent application Ser. No. 07/544,628, filed Jun. 27, 1990, which issued as U.S. Pat. No. 5,117,098. All of these applications and patents have been assigned to Symbol Technologies, Inc.
This invention relates generally to the design of scanning systems for reading bar code symbols or similar indicia, and more particularly, to scanning both one-dimensional and two-dimensional bar codes symbols automatically. Most conventional optical scanning systems can read either one-dimensional or two-dimensional bar code symbols. A bar code symbol is a coded pattern of indicia having a series of variable-width bars separated by variable-width spaces, the bars and spaces having different light-reflecting characteristics. One example of a one-dimensional bar code is the UPC/EAN code currently in use for identifying articles and other information. One example of a two-dimensional, or stacked, bar code is the PDF417 bar code described in U.S. Pat. No. 5,159,639, which is incorporated herein by reference.
Most scanning systems, or scanners, generate a beam of light which reflects off a bar code symbol so the scanning system can receive the reflected light. The system then transforms that reflected light into electrical signals, and decodes those electrical signals to extract the information embedded in the bar code symbol. Scanning systems of this general type are described in U.S. Pat. Nos. 4,251,798; 4,360,798; 4,369,361; 4,387,297; 4,409,470; and 4,460,120, all of which have been assigned to Symbol Technologies, Inc.
Because both one-dimensional symbols and two-dimensional symbols are currently being used, it would be simpler and more efficient if a single scanning system could not only distinguish a bar code symbol from other markings, such as text, but also decode the symbol whether it is one-dimensional or two-dimensional. This operation is particularly important when the bar code symbol is skewed relative to the scanning patterns of the scanner.
An additional problem for such scanning systems occurs when decoding two-dimensional bar code symbols. These symbols do not all have the same height, so the scanning system must expand its scanning pattern to cover the entire two-dimensional symbol. Some conventional systems do this but sometimes cover areas outside of the symbol. Although using such a large pattern does not affect the accuracy of the scanner, it is inefficient. The portions of the scanning pattern which lay outside the bar code symbol are useless, and scanning these areas slows down the scanning operation. In addition, forcing the scanning pattern to be too large reduces the accuracy of decoding the two-dimensional bar code symbol.
Building a system to overcome these problems is not only difficult, it is complicated by an additional concern. Scanners should not become any larger for ergonometric and economic reasons. Thus, more powerful and flexible scanning devices must be compact.
Another concern is speed. The additional processing needed for increased efficiency and flexibility must not come at the expense of speed. That processing must therefore proceed quickly and efficiently.
Yet another concern is the need to ensure that the different scanner subsystems communicate with each other effectively as they become more robust. Scanning systems typically have different subsystems, such as the scanning engine, the optical sensor, and the decoder. The interfaces between these different subsystems must support the required processing power and allow one to improve one part a scanning system without redesigning other systems.
To obtain a scanner with all these features is very difficult indeed. The fast-increasing use of bar codes, however, demands that scanning systems have increasing flexibility, robustness, and efficiency.
It is therefore an object of this invention to provide a scanner capable of differentiating between one-dimensional and two-dimensional bar codes, and of decoding them automatically and appropriately even if they are not initially aligned with the scanner.
It is also an object of the invention to ensure that the scanning pattern can precess to change the location of the scan lines.
It is another object of the invention to adjust the height of the scanning patterns automatically to ensure that the scanning pattern covers the entire symbol without extending outside the symbol.
A further object of the invention is to provide a fast but compact scanning engine to generate scanning patterns for both one-dimensional and two-dimensional bar codes.
It is also an object of the invention to have such a scanning engine adapt itself to the different characteristics of the scanning elements.
It is a further object of the-present invention to have such a powerful and flexible scanning engine communicate with the remainder of the scanner over a robust and flexible interface.
To achieve these objects, the present invention provides a system for examining the optical reflections to determine whether a sensed target is a bar code symbol and, if so, whether that symbol is a one-dimensional or two-dimensional code. If the symbol is a two-dimensional code, the present invention aligns the two-dimensional scanning pattern with the symbol and expands the pattern to the top and bottom edges of the symbol.
In addition, the present invention provides a microprocessor-controlled scan engine that uses a coil both to drive a scanning element and to pick up feedback signals representing the motion of the scanning element. The scan engine also uses different circuit techniques to avoid degrading the system, and has a powerful interface to decoding and control logic of the scanner. The scan engine may be set to ensure that two-dimensional scanning patterns precess to move the scan lines at different portions of the bar code symbols to avoid any gaps that may otherwise occur.
Specifically, a control circuit for driving a coil to produce a desired magnetic field according to this invention comprises a pulse width modulation regulator, coupled to the coil, for causing a desired current to flow through the coil in accordance with an analog drive signal; a digital-to-analog converter, coupled to the pulse width modulation circuit, for creating the analog drive signal from a digital drive signal; and a controller, coupled to the digital-to-analog converter, for generating the digital drive signal.
A method for driving a coil according to this invention comprises the steps of generating a desired current signal to flow through the coil in accordance with an analog drive signal; creating the analog drive signal from a digital drive signal; and generating the digital drive signal.
A control circuit according to this invention for driving a scanning element to produce a desired scanning pattern comprises a coil producing a magnetic field to control the movement of the scanning element; a pulse width modulation regulator, coupled to the coil, for causing a desired current to flow through the coil in accordance with an analog drive signal; a digital-to-analog converter, coupled to the pulse width modulation circuit, for creating the analog drive signal from a digital drive signal; and a controller, coupled to the digital-to-analog converter, for generating the digital drive signal.
A control system according to this invention for controlling the optical scanning of an object comprises a scan control section; a detector section coupled to the scan control section; and an interface channel between the detector section and the scan control section for carrying commands in a defined format from the detector section to the scan control section, and for carrying messages in the defined format from the scan control section to the detector section. The scan control section includes a scanning element for causing a light beam to move relative to the object, a processor for receiving external commands, for generating internal control signals from the external commands, and for forming messages; and a scanning element driver for energizing the scanning element to cause the light beam to move in a predetermined pattern in response to the internal scanning control signals. The detector section includes a light beam scanner directing the light beam toward the scanning element; a detector mounted to receive portions of the light beam reflected from the object and to generate electrical signals representing the received, reflected light beam; and central control means for receiving the electrical signals, for forming the external commands, and for receiving the messages.
A scanner according to this invention for scanning a light beam across a two-dimensional pattern comprises a light source for creating the light beam; a scanning element for moving the light beam in the two-dimensional pattern; x-drivers for causing the scanning element to move the light beam in a first direction at a first frequency in response to x-driver signals; y-drivers for causing the scanning element to move the light beam in a second direction at a second frequency in response to y-driver signals, the first and second directions being orthogonal to each other; and scanning control circuitry for generating the x-driver signals and the y-driver signals at the first and second frequencies that are not integer multiples of each other, thereby causing the two-dimensional pattern to precess.
A bar code reader according to this invention for reading a bar code symbol having a defined boundary comprises a light beam scanner for directing a light beam toward a target in a predetermined pattern; a detector for receiving portions of the light beam reflected from the target and generating electrical signals representing the received, reflected light beam; identifier means for determining whether the target is a bar code symbol; and feedback means, responsive to the electric signals, for controlling the scanner to conform the shape of the predetermined pattern to the boundary of the target if it is a bar code symbol.